package 相向双指针

import "slices"

func getStrongest(arr []int, k int) []int {
	left := 0
	right := len(arr) - 1
	slices.Sort(arr)
	m := arr[(len(arr)-1)/2]
	ans := make([]int, k)
	for i := 0; i < k; i++ {
		// 计算左右元素与m的距离
		dLeft := abs(arr[left] - m)
		dRight := abs(arr[right] - m)

		// 比较强度：距离大的优先；距离相同则值大的优先
		if dRight > dLeft || (dRight == dLeft && arr[right] > arr[left]) {
			ans[i] = arr[right]
			right-- // 右指针左移
		} else {
			ans[i] = arr[left]
			left++ // 左指针右移
		}

	}
	return ans

}
func abs(x int) int {
	if x < 0 {
		return -x
	}
	return x
}
